Finite impulse response (FIR) filters are known to digitally perform filtering of digital signals. An FIR filter may be configured to implement a high pass filter, a low pass filter, or a band pass filter. Such filters are widely used in almost all types of audio processing circuitry (Eg. radios, compact disc (CD) players, cellular telephones, personal computers (PC)) and video processing circuitry (Eg. video disc players, video camera recorders (VCR), cameras, etc.).
Generally, an FIR filter operates in the time domain by multiply FIR coefficients with bits of the digital signal and accumulating the results. Values of the FIR coefficients are selected based on the type of filter being implemented and the number of FIR coefficients is based on the desired performance of the FIR filter. For example, a simple 5-tap FIR filter performing a low pass filtering function on a digitized audio signal may have FIR coefficients of c-2=0.05, c-1=0.10, c0=0.50, c+1=0.25, and c+2=0.10. These coefficients are multiplied with corresponding sampled data points of the digitized audio signal to provide low pass filtering of the digitized audio signal. As is known, the filtering provided by the simple 5-tap filter is relatively poor. To enhance the filtering capabilities of an FIR filter, more taps, and thus more coefficients, are needed.
While the filtering capabilities of an FIR filter can be improved by increasing the number of taps, there is a practical limitation as to how many taps may be added. This limitation is introduced by the speed of the processor performing the multiply and accumulate functions of the FIR process. To operate in real time, the FIR process for a particular data point--one complete loop of multiplying and accumulating the coefficients with corresponding data points--must be completed within the sampling rate. For example, if the sampling rate is 1 MHz, the FIR process must be complete within 1 microsecond. In many audio and/or video products the sampling rate is in the range of 10 MHz and the processor is not totally dedicated to the multiply accumulate function of the FIR process. As a result, FIR filters are not used in such circuits because an FIR filter that provides the needed filtering cannot be processed within the allotted time. In other words, multi-bit FIR filters cannot operate in real time and provide the required filtering.
One solution is to use a single bit FIR filter. A single bit FIR filter eliminates the need for a multiplier, thus substantially reducing the processing time. While the single bit FIR filter eliminates the need for a multiplier, its utilization has some drawbacks. For example, the words used are extremely long which require additional overhead and the sampling rate must be relatively low, in the range of 64 times the signal frequency.
As an alternative to using an FIR filter, many audio and/or video processing equipment utilize an infinite impulse response (IIR) filter. While the IIR filter may be performed in real time, it has nonlinear phase. As such, the IIR filter causes different frequencies to be filtered at different rates, thus introducing noise, or distortion of the signals.
Therefore, a need exists for a high performance multi-bit FIR filter that operates in real time.